// miniprogram/pages/register/register.js
const config  = require("../../config.js")
const db = wx.cloud.database()
const app = getApp()

Page({

  /**
   * 页面的初始数据
   */
  data: {
    departmentList: JSON.parse(config.data).departments
  },


  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {

  },

  departmentChange: function (e) {
    console.log('picker发送选择改变，携带值为', e.detail.value)
    this.setData({
      departmentIndex: e.detail.value
    })
  },

  async submit(res) {
    let data = res.detail.value
    if (data.name == undefined || data.name == '') {
      wx.showToast({
        icon: 'none',
        title: '姓名为必填项'
      })
      return
    }
    if (data.number == undefined || data.number == '') {
      wx.showToast({
        icon: 'none',
        title: '工号为必填项，如果没有请填写000000'
      })
      return
    }
    if (this.data.departmentIndex == undefined) {
      wx.showToast({
        icon: 'none',
        title: '所在部门为必填项'
      })
      return
    }

    // 判断工号是否已经被注册过了
    let flag = await this.isNumberBeUsed(data.number)
    if (flag) {
      wx.showToast({
        icon: 'none',
        title: '该工号已被使用，请联系系统管理员'
      })
    } else {
      db.collection('user').add({
        data: {
          name: data.name,
          number: data.number,
          department: this.data.departmentList[this.data.departmentIndex],
          password: '123456',
          status: '审核中',
          type: '0',
          openid: app.globalData.openid
        },
        success: res => {
          wx.showToast({
            title: '提交成功',
          })
          wx.navigateTo({
            url: '../auditing/auditing'
          })
        },
        fail: err => {
          wx.showToast({
            icon: 'none',
            title: '提交失败'
          })
        }
      })

    }
  },

  isNumberBeUsed: function (number) {
    return new Promise((resolve, reject) => {
      db.collection('user').where({
        number: number
      }).get().then(res => {
        console.log(res.data)
        if (res.data.length > 0) {
          resolve(true)
        } else {
          resolve(false)
        }
      }).catch(err => {
        wx.showToast({
          icon: 'none',
          title: '获取数据失败，请重新登陆'
        })
      })
    })

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})